package com.ff.discounts.entity.response

import com.ff.discounts.model.BaseViewModel
import com.ff.discounts.superui.extension.longToast

/**
 *  这里需要数据返回不为空
 * @author: fufang
 * @date: 2023/10/24
 */
class OriginalResponse<T> : BaseResponse() {
    /**
     * 真实数据
     * 类似是泛型
     */
    var data: T? = null
}

/**
 * @description OriginalResponse 的扩展
 * @param getData 可执行函数 当需要完整返回值时
 *  @param data 可执行函数 返回data 值
 * @return
 */
suspend fun <T> OriginalResponse<T>.onSuccess(
    viewModel: BaseViewModel,
    action: suspend (data: T?) -> Unit
): Unit {
    if (data == null) {
        msg?.longToast()
    } else if (isSucceeded) {
        action(data)
    } else {
        viewModel._response.value = this
    }
}